﻿using System;
using System.Diagnostics;
using System.Windows.Forms;
using FBWMS.Properties;
using System.Data;

namespace FBWMS
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            //二重起動チェック
            Process process = Process.GetCurrentProcess();

            Process[] processes = Process.GetProcessesByName(process.ProcessName);
            if (processes.Length > 1)
            {
                //バージョン管理exeの２重起動は許可する。
                if (process.ProcessName.ToString() != G_CommonDefine.G_SystemPC_exetempName.ToString())
                {
                    MessageBox.Show(process.ProcessName + Resources.Main);
                }
            }
            else
            {
                //PC名称取得
                G_CommonDefine.G_PCNM = G_CommonClassSystem.G_System_GetHostName();
                G_CommonDefine.G_PCIP = G_CommonClassSystem.G_System_GetIPAddress();

                //共通パス設定
                G_CommonDefine.G_CommonPath = G_CommonClassSystem.G_System_GetCommonPath();

                //XMLファイル(ini)読み込み、失敗したら最新のシステムダウンロード
                if (!G_CommonClassSystem.G_System_GetCommonDefine())
                {
                    MessageBox.Show(Resources.ProgramMain, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    //G_CommonClassVersion.G_Version_SystemDownload();
                }                

                //関連ファイルの存在確認をして無ければダウンロード
                //if (!G_CommonClassSystem.G_System_GetRelationFiles())
                //{
                //    MessageBox.Show("関連ファイルが正常にダウンロードできませんでした。\r\nシステムを起動できません。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);

                //    return;
                //}

                //バージョンチェック
                if (G_CommonDefine.G_SystemPC_VersionFG.ToString() == "ON")
                {
                    G_CommonClassVersion.G_Version_SystemChk();
//                    //バージョンダウンロードの為に使用したtempexeを削除する。
//                    System.IO.File.Delete(str_ServerExe);
                }

                //ショートカットの更新
                G_CommonClassShortCut.G_ShortCut_Update();

                //システム起動PC名称を取得する。
                G_CommonClassSystem.G_System_GetSystemInfo();

                //OS情報を取得する
                G_CommonClassSystem.G_System_GetOSVersion();



                //DB接続文字列を設定する。
                //接続文字列を生成する。
//                Properties.Settings.Default.ConnectionString = "Data Source=wmsserver01;Initial Catalog=ADJ;Persist Security Info=True;User ID=sa;Password=system";
                Settings.Default.ConnectionString = G_CommonClassSystem.G_System_GetConnectionString();

//G_CommonClass_Systemに関数作成
                G_CommonDefine.G_tt_ToolTip = new ToolTip();
                //ToolTipの設定を行う
                //ToolTipが表示されるまでの時間
                G_CommonDefine.G_tt_ToolTip.InitialDelay = G_CommonDefine.G_ToolTipInitialDelay;
                //ToolTipが表示されている時に、別のToolTipを表示するまでの時間
                G_CommonDefine.G_tt_ToolTip.ReshowDelay = G_CommonDefine.G_ToolTipReshowDelay;
                //ToolTipを表示する時間
                G_CommonDefine.G_tt_ToolTip.AutoPopDelay = G_CommonDefine.G_ToolTipAutoPopDelay;
                //フォームがアクティブでない時でもToolTipを表示する
                G_CommonDefine.G_tt_ToolTip.ShowAlways = G_CommonDefine.G_ToolTipShowAlwaysFG;

                //Add by Michael Date:2009-09-11
                //DataTable dt = G_CommonClassBussniss.G_M_Define_HD_GetData();
                //if ((dt != null) && (dt.Rows.Count > 0))
                //{
                //    DataRow[] Rows = dt.Select("Item_CD='09'");
                //    if (Rows.Length > 0)
                //    {
                //        G_CommonDefine.G_DateFormat = Rows[0]["Item_Value"].ToString();
                //    }
                //}

                //PC名称チェック
                //if (G_CommonDefine.G_MSys_Printer_PC_NM == G_CommonDefine.G_PCNM
                //    || G_CommonDefine.G_MSys_Printer_PC_NM == G_CommonDefine.G_PCIP)
                //{
                //    //帳票タスク画面を起動する。
                //    Application.Run(new F_COM_Report_Task());
                //}
                //else 
                //{
                    //ログイン画面を起動する。
                //Application.Run(new F_COM_Encrypt());F_COM_Report_TaskF_COM_Report_Task
                    Application.Run(new F_LogIn());
                //}
            }
        }
    }
}